Skip to content

[ci] Add workflow for 32-bit MSVC (windows-2025 x86)#1051

Merged
vgvassilev merged 4 commits into
compiler-research:mainfrom
aaronj0:win32-msvc-ci
Jul 8, 2026
Merged

[ci] Add workflow for 32-bit MSVC (windows-2025 x86)#1051
vgvassilev merged 4 commits into
compiler-research:mainfrom
aaronj0:win32-msvc-ci

Conversation

@aaronj0

@aaronj0 aaronj0 commented Jul 6, 2026

Copy link
Copy Markdown
Collaborator

Should surface failures fixed by #1048

@aaronj0 aaronj0 requested a review from vgvassilev July 6, 2026 21:44
@codecov

codecov Bot commented Jul 6, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 86.65%. Comparing base (794f495) to head (f849fa5).

Additional details and impacted files

Impacted file tree graph

@@            Coverage Diff             @@
##             main    #1051      +/-   ##
==========================================
+ Coverage   86.62%   86.65%   +0.02%     
==========================================
  Files          23       23              
  Lines        5946     5948       +2     
==========================================
+ Hits         5151     5154       +3     
+ Misses        795      794       -1     
Files with missing lines Coverage Δ
lib/CppInterOp/CppInterOp.cpp 89.12% <100.00%> (+<0.01%) ⬆️
lib/CppInterOp/CppInterOpInterpreter.h 83.61% <ø> (ø)

... and 1 file with indirect coverage changes

Files with missing lines Coverage Δ
lib/CppInterOp/CppInterOp.cpp 89.12% <100.00%> (+<0.01%) ⬆️
lib/CppInterOp/CppInterOpInterpreter.h 83.61% <ø> (ø)

... and 1 file with indirect coverage changes

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@github-actions

github-actions Bot commented Jul 7, 2026

Copy link
Copy Markdown
Contributor

clang-tidy review says "All clean, LGTM! 👍"

1 similar comment
@github-actions

github-actions Bot commented Jul 7, 2026

Copy link
Copy Markdown
Contributor

clang-tidy review says "All clean, LGTM! 👍"

@github-actions

github-actions Bot commented Jul 7, 2026

Copy link
Copy Markdown
Contributor

clang-tidy review says "All clean, LGTM! 👍"

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

clang-tidy made some suggestions

Comment thread lib/CppInterOp/CppInterOp.cpp Outdated
Comment thread lib/CppInterOp/CppInterOp.cpp Outdated
Comment thread unittests/CppInterOp/VTableOverlayTest.cpp
Comment thread unittests/CppInterOp/VTableOverlayTest.cpp
// Reads the object via `this`: layout is { vptr, int value } on every
// ABI we target, so the data member sits at sizeof(void*).
int read_value(int x) {
return *reinterpret_cast<int*>(reinterpret_cast<char*>(this) +

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

warning: do not use reinterpret_cast [cppcoreguidelines-pro-type-reinterpret-cast]

    return *reinterpret_cast<int*>(reinterpret_cast<char*>(this) +
                                   ^

// Reads the object via `this`: layout is { vptr, int value } on every
// ABI we target, so the data member sits at sizeof(void*).
int read_value(int x) {
return *reinterpret_cast<int*>(reinterpret_cast<char*>(this) +

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

warning: do not use reinterpret_cast [cppcoreguidelines-pro-type-reinterpret-cast]

    return *reinterpret_cast<int*>(reinterpret_cast<char*>(this) +
            ^

sizeof(void*)) +
x;
}
int foo() { return reinterpret_cast<A*>(this)->m_x + 10; }

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

warning: do not use reinterpret_cast [cppcoreguidelines-pro-type-reinterpret-cast]

  int foo() { return reinterpret_cast<A*>(this)->m_x + 10; }
                     ^

}
int foo() { return reinterpret_cast<A*>(this)->m_x + 10; }
int bar() {
B* b = reinterpret_cast<B*>(this);

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

warning: do not use reinterpret_cast [cppcoreguidelines-pro-type-reinterpret-cast]

    B* b = reinterpret_cast<B*>(this);
           ^

Comment thread unittests/CppInterOp/VTableOverlayTest.cpp Outdated

@vgvassilev vgvassilev left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Consider fixing the clang-tidy suggestions.

Comment thread lib/CppInterOp/CppInterOp.cpp
@aaronj0 aaronj0 force-pushed the win32-msvc-ci branch 2 times, most recently from c6facd7 to f111aa6 Compare July 7, 2026 18:29
aaronj0 added 4 commits July 7, 2026 20:32
On 32-bit Windows, linker-level names carry decorations the ORC
in-process resolver never undoes: '_' prefixes on cdecl symbols,
'@<argbytes>' suffixes on stdcall ones, and __imp_ dllimport pointer
indirections. ORC strips a global prefix for MachO only, so JIT'd
code referencing the CRT fails to materialize (JIT session error:
Symbols not found: [ _memset ] / __CxxThrowException@8 / ...) and
GetFunctionAddress misses symbols from libraries loaded at runtime.

Install a definition generator on the main JITDylib that normalizes
the decorations the way cling's platform::DLSym does and retries
against the loaded modules. C++ manglings ('?...') take no i386
decoration and stay with the default resolver. Cling mode is
unaffected; cling carries its own lookup.
Found by running the win32 suite under CPPINTEROP_LOG=1: the traced
function returns through a bare return, so the tracing layer's
unannotated-exit assert aborts the process the first time the API is
called with tracing active (on any platform).
Add __thiscall to the bitcast type on _M_IX86 so the caller reproduces the compiler's virtual-dispatch ABI
@github-actions

github-actions Bot commented Jul 7, 2026

Copy link
Copy Markdown
Contributor

clang-tidy review says "All clean, LGTM! 👍"

@aaronj0

aaronj0 commented Jul 7, 2026

Copy link
Copy Markdown
Collaborator Author

Consider fixing the clang-tidy suggestions.

Addressed those that seemed relevant

@vgvassilev vgvassilev left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Lgtm!

@vgvassilev vgvassilev merged commit eff0543 into compiler-research:main Jul 8, 2026
29 of 30 checks passed
aaronj0 added a commit that referenced this pull request Jul 8, 2026
Revert "[ci] Add workflow for 32-bit MSVC (windows-2025 x86) (#1051)"

This reverts commit eff0543.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants